Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Web template system</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Web_template_system"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Web_template_system rootpage-Web_template_system skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Web template system</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1248332772">
/* start https://en.wikipedia.org/ */


.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}


/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */


.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks"><tbody><tr><th class="sidebar-title"><a href="Data_transformation_(computing)" title="Data transformation (computing)">Data transformation</a></th></tr><tr><th class="sidebar-heading" style="background:#E7C6A5; padding:2px">
Concepts</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Metadata" title="Metadata">Metadata</a></li>
<li><a href="Data_element" title="Data element">Data element</a></li>
<li><a href="Data_mapping" title="Data mapping">Data mapping</a></li>
<li><a href="Data_migration" title="Data migration">Data migration</a></li>
<li><a href="Data_transformation_(computing)" title="Data transformation (computing)">Data transformation</a></li>
<li><a href="Model_transformation" title="Model transformation">Model transformation</a></li>
<li><a href="Macro_(computer_science)" title="Macro (computer science)">Macro</a></li>
<li><a href="Preprocessor" title="Preprocessor">Preprocessor</a></li></ul></td>
</tr><tr><th class="sidebar-heading" style="background:#E7C6A5; padding:2px">
<a href="Transformation_language" title="Transformation language">Transformation languages</a></th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="ATLAS_Transformation_Language" title="ATLAS Transformation Language">ATL</a></li>
<li><a href="AWK" title="AWK">AWK</a></li>
<li><a href="MOFM2T" class="mw-redirect" title="MOFM2T">MOFM2T</a></li>
<li><a href="QVT" title="QVT">QVT</a></li>
<li><a href="XML_transformation_language" title="XML transformation language">XML languages</a></li></ul></td>
</tr><tr><th class="sidebar-heading" style="background:#E7C6A5; padding:2px">
Techniques and transforms</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Identity_transform" title="Identity transform">Identity transform</a></li>
<li><a href="Data_refinement" class="mw-redirect" title="Data refinement">Data refinement</a></li></ul></td>
</tr><tr><th class="sidebar-heading" style="background:#E7C6A5; padding:2px">
Applications</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Data_conversion" title="Data conversion">Data conversion</a></li>
<li><a href="Data_migration" title="Data migration">Data migration</a></li>
<li><a href="Data_integration" title="Data integration">Data integration</a></li>
<li><a href="Extract%2C_transform%2C_load" title="Extract, transform, load">Extract, transform, load</a> (ETL)</li>
</ul></td>
</tr><tr><th class="sidebar-heading" style="background:#E7C6A5; padding:2px">
Related</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Data_wrangling" title="Data wrangling">Data wrangling</a></li>
<li><a href="Transformation_language" title="Transformation language">Transformation languages</a></li></ul></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>

<p>A <b>web template system</b> in <a href="Web_publishing" class="mw-redirect" title="Web publishing">web publishing</a> allows web designers and developers to work with <i>web templates</i> to automatically generate custom <a href="Web_page" title="Web page">web pages</a>, such as the results from a search. This reuses static web page elements while defining dynamic elements based on <a href="HTTP_request" class="mw-redirect" title="HTTP request">web request</a> parameters.
Web templates support static content, providing basic structure and appearance. Developers can implement templates from <a href="Content_management_system" title="Content management system">content management systems</a>, <a href="Web_application_framework" class="mw-redirect" title="Web application framework">web application frameworks</a>, and <a href="HTML_editor" title="HTML editor">HTML editors</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>A <i>web template system</i> is composed of the following:
</p>
<ul><li>A <a href="Template_processor" title="Template processor">template engine</a>: the primary <a href="Processing_element" class="mw-redirect" title="Processing element">processing element</a> of the system;<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></li>
<li><i>Content resource</i>: any of various kinds of input <a href="Data_stream" title="Data stream">data streams</a>, such as from a <a href="Relational_database" title="Relational database">relational database</a>, <a href="XML" title="XML">XML</a> files, <a href="Lightweight_Directory_Access_Protocol" title="Lightweight Directory Access Protocol">LDAP</a> directory, and other kinds of local or <a href="Computer_networking" class="mw-redirect" title="Computer networking">networked</a> data;</li>
<li><i>Template resource</i>: <i>web template</i>s specified according to a <a href="Template_language" class="mw-redirect" title="Template language">template language</a>;</li></ul>
<p>The template and content resources are processed and combined by the template engine to mass-produce web documents. For purposes of this article, web documents include any of various output formats for transmission over the web via <a href="Hypertext_Transfer_Protocol" class="mw-redirect" title="Hypertext Transfer Protocol">HTTP</a>, <a href="HTTPS" title="HTTPS">HTTPS</a>, or another <a href="Internet_Protocol" title="Internet Protocol">Internet protocol</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Template_engine">Template engine</h3></div>
<div class="excerpt-block"><style data-mw-deduplicate="TemplateStyles:r1066933788">
/* start https://en.wikipedia.org/ */


.mw-parser-output .excerpt-hat .mw-editsection-like{font-style:normal}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable dablink excerpt-hat selfref">This section is an excerpt from <a href="Template_processor" title="Template processor">Template processor</a>.<span class="mw-editsection-like "><span class="mw-editsection-bracket">[</span><a class="external text external" href="https://en.wikipedia.org/w/index.php?title=Template_processor&amp;action=edit">edit</a><span class="mw-editsection-bracket">]</span></span></div><div class="excerpt">

A <a href="Template_processor" title="Template processor">template processor</a> (also known as a template engine or template parser) is <a href="Software" title="Software">software</a> designed to combine <i>template</i>s with data (defined by a <a href="Data_model" title="Data model">data model</a>) to produce resulting <a href="Electronic_document" title="Electronic document">documents</a> or <a href="Computer_program" title="Computer program">programs</a>.<sup id="cite_ref-Template_processor_Niemeyer000_2-0" class="reference"><a href="#cite_note-Template_processor_Niemeyer000-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Template_processor_Manolescu000_3-0" class="reference"><a href="#cite_note-Template_processor_Manolescu000-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Template_processor_Fowler000_4-0" class="reference"><a href="#cite_note-Template_processor_Fowler000-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> The language that the templates are written in is known as a template language or templating language. For purposes of this article, a result document is any kind of formatted output, including <a href="Documents" class="mw-redirect" title="Documents">documents</a>, <a href="Web_page" title="Web page">web pages</a>, or <a href="Source_code" title="Source code">source code</a> (in <a href="Source_code_generation" class="mw-redirect" title="Source code generation">source code generation</a>), either in whole or in fragments. A template engine is ordinarily included as a part of a web template system or <a href="Application_framework" title="Application framework">application framework</a>, and may be used also as a <a href="Preprocessor" title="Preprocessor">preprocessor</a> or <a href="Filter_(software)" title="Filter (software)">filter</a>.</div></div>
<div class="mw-heading mw-heading2"><h2 id="Example">Example</h2></div>
<p>With the model typically held in a relational database, the remaining components of the <a href="Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> architecture are the control and view. In the simplest of systems these two are not separated. However, adapting the <a href="Separation_of_concerns" title="Separation of concerns">separation of concerns</a> principle one can completely decouple the relationships.
</p><p>For example, the view template may look like this:
</p>
<div class="mw-highlight mw-highlight-lang-html mw-content-ltr" dir="ltr"><pre><span class="cp">&lt;!DOCTYPE html&gt;</span>
<span class="p">&lt;</span><span class="nt">html</span> <span class="na">xmlns</span><span class="o">=</span><span class="s">"http://www.w3.org/1999/xhtml"</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">head</span><span class="p">&gt;&lt;</span><span class="nt">title</span><span class="p">&gt;</span>Sites<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;&lt;/</span><span class="nt">head</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">body</span><span class="p">&gt;&lt;</span><span class="nt">h1</span> <span class="na">data-xp</span><span class="o">=</span><span class="s">"title"</span><span class="p">&gt;</span><span class="cm">&lt;!-- placeholder --&gt;</span><span class="p">&lt;/</span><span class="nt">h1</span><span class="p">&gt;&lt;/</span><span class="nt">body</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">html</span><span class="p">&gt;</span>
</pre></div>
<p>Then, the control template loads the view, and then uses <a href="XPath" title="XPath">XPath</a> addressing to insert components from a database, for instance:
</p>
<div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span class="cp">&lt;?php</span>
<span class="nv">$doc</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">DOMDocument</span><span class="p">;</span>
<span class="nv">$doc</span><span class="o">-&gt;</span><span class="na">preserveWhiteSpace</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span>
<span class="nv">$doc</span><span class="o">-&gt;</span><span class="na">Load</span><span class="p">(</span><span class="s1">'view.html'</span><span class="p">);</span>
<span class="nv">$titlenode</span> <span class="o">=</span> <span class="nv">$doc</span><span class="o">-&gt;</span><span class="na">createTextNode</span><span class="p">(</span><span class="s2">"Like this"</span><span class="p">);</span>
<span class="nv">$xpath</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">DOMXPath</span><span class="p">(</span><span class="nv">$doc</span><span class="p">);</span>
<span class="nv">$xpath</span><span class="o">-&gt;</span><span class="na">registerNamespace</span><span class="p">(</span><span class="s2">"h"</span><span class="p">,</span> <span class="s2">"http://www.w3.org/1999/xhtml"</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="s2">"//h:*[@data-xp='title']/comment()"</span><span class="p">;</span>
<span class="nv">$entries</span> <span class="o">=</span> <span class="nv">$xpath</span><span class="o">-&gt;</span><span class="na">query</span><span class="p">(</span><span class="nv">$query</span><span class="p">);</span>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$entries</span> <span class="k">as</span> <span class="nv">$entry</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">$entry</span><span class="o">-&gt;</span><span class="na">parentNode</span><span class="o">-&gt;</span><span class="na">replaceChild</span><span class="p">(</span><span class="nv">$titlenode</span><span class="p">,</span> <span class="nv">$entry</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">echo</span> <span class="nv">$doc</span><span class="o">-&gt;</span><span class="na">saveXML</span><span class="p">();</span>
<span class="cp">?&gt;</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Kinds_of_template_systems">Kinds of template systems</h2></div>
<p>A web browser and web server are a <a href="Client%E2%80%93server" class="mw-redirect" title="Client–server">client–server</a> architecture. Sites often also use a <a href="Web_cache" title="Web cache">web cache</a> to improve performance. Five templating system types are classified based on when they replace placeholders with real content and assemble pages.
</p>
<ul><li>Server-side – run-time substitution happens on the web server</li>
<li>Client-side – run-time substitution happens in the web browser</li>
<li>Edge-side – run-time substitution happens on a proxy between web server and browser</li>
<li>Outside server – static web pages are produced offline and uploaded to the web server; no run-time substitution</li>
<li>Distributed – run-time substitution happens on multiple servers</li></ul>
<p>Template languages may be:
</p>
<ul><li>Embedded or event-driven.</li>
<li>Simple, iterable, programmable, or complex.</li>
<li>Defined by a consortium, privately defined, or de facto defined by an open implementation. Ownership influences the stability and credibility of a specification. However, in most jurisdictions, language specification cannot be copyrighted, so control is seldom absolute.</li></ul>
<p>The source code of the <a href="Template_engine_(web)" class="mw-redirect" title="Template engine (web)">template engine</a> can be proprietary or <a href="Open_source" title="Open source">open source</a>.
</p><p>Many template systems are a component of a larger programming platform or framework. They are referred to as the "platform's template system". Some template systems have the option of substituting a different template language or engine.
</p>
<div class="mw-heading mw-heading3"><h3 id="Language_support">Language support</h3></div>
<p><a href="Programming_languages" class="mw-redirect" title="Programming languages">Programming languages</a> such as <a href="Perl" title="Perl">Perl</a>, <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>, <a href="C_(programming_language)" title="C (programming language)">C</a>, and <a href="Java_(programming_language)" title="Java (programming language)">Java</a> support template processing either natively, or through add-on libraries and modules. <a href="JavaServer_Pages" class="mw-redirect" title="JavaServer Pages">JavaServer Pages</a> (JSP), <a href="PHP" title="PHP">PHP</a>, and <a href="Active_Server_Pages" title="Active Server Pages">Active Server Pages</a> (ASP with <a href="VBScript" title="VBScript">VBScript</a>, <a href="JScript" title="JScript">JScript</a> or other languages) are examples, themselves, of web template engines. These technologies are typically used in server-side templating systems, but could be adapted for use on an "edge-side" proxy or for static page generation.
</p>
<div class="mw-heading mw-heading3"><h3 id="Static_site_generators">Static site generators</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Static_site_generator" title="Static site generator">Static site generator</a></div>
<p>Static site generators are engines that use flat text input files like <a href="Markdown" title="Markdown">markdown</a> and <a href="Asciidoc" class="mw-redirect" title="Asciidoc">asciidoc</a> to generate a <a href="Static_web_page" title="Static web page">static web page</a>. Examples of this include <a href="Jekyll_(software)" title="Jekyll (software)">Jekyll</a> (Liquid, <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>), <a href="Hugo_(software)" title="Hugo (software)">Hugo</a> (<a href="Go_(programming_language)" title="Go (programming language)">Go</a> templates), and Pelican (<a href="Jinja_(template_engine)" title="Jinja (template engine)">Jinja2</a>, <a href="Python_(software)" class="mw-redirect" title="Python (software)">Python</a>).
</p>
<div class="mw-heading mw-heading3"><h3 id="Static_HTML_Editors">Static HTML Editors</h3></div>

<p><a href="HTML_editor" title="HTML editor">HTML editors</a> often use web template systems to produce only <a href="Static_web_page" title="Static web page">static web pages</a>. These can be viewed as a ready-made <a href="Web_design" title="Web design">web design</a>, used to mass-produce "cookie-cutter" <a href="Website" title="Website">websites</a> for rapid deployment. They also commonly include themes in place of <a href="Cascading_Style_Sheets" class="mw-redirect" title="Cascading Style Sheets">CSS</a> styles. In general, the template language is used only with the editor's software.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Microsoft_FrontPage" title="Microsoft FrontPage">FrontPage</a> and <a href="Macromedia_Dreamweaver" class="mw-redirect" title="Macromedia Dreamweaver">Dreamweaver</a> were once the most popular editors with template sub-systems. A Flash web template uses <a href="Adobe_Animate" title="Adobe Animate">Macromedia Flash</a> to create visually interactive sites.
</p><p>Many <i>server-side template systems</i> have an option to publish output pages on the server, where the published pages are <a href="Static_web_page" title="Static web page">static</a>. This is common on <a href="Content_management_system" title="Content management system">content management systems</a>, like <a href="Vignette_(software)" class="mw-redirect" title="Vignette (software)">Vignette</a>, but is not considered out-server generation. In the majority of cases, this "publish option" doesn't interfere with the <i>template system</i>, and it can be made by external software, as <a href="Wget" title="Wget">Wget</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Server-side_systems">Server-side systems</h3></div>

<p>People began to use <a href="Dynamic_web_page#Server-side_scripting" title="Dynamic web page">server-side dynamic pages</a> generated from templates with pre-existent software adapted for this task. This early software was the <a href="Preprocessor" title="Preprocessor">preprocessors</a> and <a href="Macro_(computer_science)" title="Macro (computer science)">macro languages</a>, adapted for the web use, running on <a href="Common_Gateway_Interface" title="Common Gateway Interface">CGI</a>. Next, a simple but relevant technology was the direct execution made on extension modules, started with <a href="Server_Side_Includes" title="Server Side Includes">SSI</a>.
</p><p>Many <i>template systems</i> are typically used as <i>server-side template systems</i>:
</p>
<table class="wikitable sortable">
<tbody><tr>
<th>System label/name
</th>
<th>Platform/framework
</th>
<th>Notes
</th></tr>
<tr>
<td>Blade
</td>
<td><a href="PHP" title="PHP">PHP</a>
</td>
<td>Public. Part of <a href="Laravel" title="Laravel">Laravel</a>
</td></tr>
<tr>
<td><a href="CheetahTemplate" title="CheetahTemplate">CheetahTemplate</a>
</td>
<td><a href="Python_(programming_language)" title="Python (programming language)">Python</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded complex language</a>.
</td></tr>
<tr>
<td><a href="Django_web_framework" class="mw-redirect" title="Django web framework">Django</a>
</td>
<td><a href="Python_(programming_language)" title="Python (programming language)">Python</a>
</td>
<td>Use the "Django template language".
</td></tr>
<tr>
<td>EJS (Embedded JavaScript)
</td>
<td><a href="JavaScript" title="JavaScript">JavaScript</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded complex language</a>.
</td></tr>
<tr>
<td><a href="FreeMarker" title="FreeMarker">FreeMarker</a>
</td>
<td><a href="Java_platform" class="mw-redirect" title="Java platform">Java</a>
</td>
<td>Public.
</td></tr>
<tr>
<td><a href="Facelets" title="Facelets">Facelets</a>
</td>
<td><a href="Jakarta_EE" title="Jakarta EE">Jakarta EE</a>
</td>
<td>Public. Part of <a href="Jakarta_Faces" title="Jakarta Faces">Jakarta Faces</a>
</td></tr>
<tr>
<td><a href="Genshi_(Templating_Language)" class="mw-redirect" title="Genshi (Templating Language)">Genshi</a>
</td>
<td><a href="Python_(programming_language)" title="Python (programming language)">Python</a>
</td>
<td>Public
</td></tr>
<tr>
<td><a href="Haml" title="Haml">Haml</a>
</td>
<td><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a> or Other
</td>
<td>Public.
</td></tr>
<tr>
<td>Hamlets
</td>
<td><a href="Java_(programming_language)" title="Java (programming language)">Java</a>
</td>
<td>Public.
</td></tr>
<tr>
<td><a href="Jinja_(template_engine)" title="Jinja (template engine)">Jinja2</a>
</td>
<td><a href="Python_(programming_language)" title="Python (programming language)">Python</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded complex language</a>.
</td></tr>
<tr>
<td><a href="Kid_(templating_language)" class="mw-redirect" title="Kid (templating language)">Kid</a>
</td>
<td><a href="Python_(programming_language)" title="Python (programming language)">Python</a>
</td>
<td>
</td></tr>
<tr>
<td><a href="Lasso_programming_language" class="mw-redirect" title="Lasso programming language">Lasso</a>
</td>
<td><a rel="nofollow" class="external text" href="http://www.lassosoft.com/">LassoSoft, LLC</a>
</td>
<td>Proprietary. <a href="Interpreter_(computing)" title="Interpreter (computing)">Interpreted</a> <a href="Programming_language" title="Programming language">Programming Language</a> and <a href="Server_(computing)" title="Server (computing)">Server</a>
</td></tr>
<tr>
<td><a href="Mustache_(template_system)" title="Mustache (template system)">Mustache</a>
</td>
<td><a href="ActionScript" title="ActionScript">ActionScript</a>, <a href="C%2B%2B" title="C++">C++</a>, <a href="Clojure" title="Clojure">Clojure</a>, <a href="CoffeeScript" title="CoffeeScript">CoffeeScript</a>, <a href="ColdFusion" class="mw-redirect" title="ColdFusion">ColdFusion</a>, <a href="D_(programming_language)" title="D (programming language)">D</a>, <a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>, <a href="Fantom_(programming_language)" title="Fantom (programming language)">Fantom</a>, <a href="Go_(programming_language)" title="Go (programming language)">Go</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, <a href="Server-side_JavaScript" class="mw-redirect" title="Server-side JavaScript">server-side JavaScript</a>, <a href="Lua_(programming_language)" class="mw-redirect" title="Lua (programming language)">Lua</a>, <a href=".NET_Framework" title=".NET Framework">.NET</a>, <a href="Objective-C" title="Objective-C">Objective-C</a>, ooc,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> <a href="Perl" title="Perl">Perl</a>, <a href="PHP" title="PHP">PHP</a>, <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>, <a href="Scala_(programming_language)" title="Scala (programming language)">Scala</a>, <a href="Tcl" title="Tcl">Tcl</a>
</td>
<td>Public.
</td></tr>
<tr>
<td>Basic <a href="Server_Side_Includes" title="Server Side Includes">Server Side Includes</a> (SSI)
</td>
<td>The <a href="Server_Side_Includes#Directives" title="Server Side Includes">basic directives</a> fix a "standard".
</td>
<td><a href="Web_template" class="mw-redirect" title="Web template">Embedded simple language</a>, if exclude <code>exec</code> directive.
</td></tr>
<tr>
<td><a href="Smarty_(template_engine)" title="Smarty (template engine)">Smarty</a>
</td>
<td><a href="PHP" title="PHP">PHP</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded complex language</a>.
</td></tr>
<tr>
<td><a href="Template_Toolkit" title="Template Toolkit">Template Toolkit</a>
</td>
<td><a href="Perl" title="Perl">Perl</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded complex language</a>.
</td></tr>
<tr>
<td><a href="Template_Attribute_Language" title="Template Attribute Language">Template Attribute Language</a> (TAL)
</td>
<td><a href="Zope" title="Zope">Zope</a>, <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, <a href="Perl" title="Perl">Perl</a>, <a href="PHP" title="PHP">PHP</a>, <a href="XSLT" title="XSLT">XSLT</a>
</td>
<td>Public; a.k.a. <a href="Zope#Zope_Page_Templates" title="Zope">Zope Page Templates (ZPT)</a>; see also <a href="TALES" class="mw-redirect" title="TALES">TAL Expression Syntax</a> (TALES), <a href="METAL" class="mw-redirect" title="METAL">Macro Expansion TAL</a> (METAL)
</td></tr>
<tr>
<td><a href="Java_view_technologies_and_frameworks#Apache_Tiles" title="Java view technologies and frameworks">Tiles</a>
</td>
<td><a href="Java_platform" class="mw-redirect" title="Java platform">Java</a>
</td>
<td>Public. Supports multiple template languages (JSP, Velocity, Freemarker, Mustache) from various frameworks (servlet, portlets, struts, spring).
</td></tr>
<tr>
<td><a href="Thymeleaf" title="Thymeleaf">Thymeleaf</a>
</td>
<td><a href="Java_platform" class="mw-redirect" title="Java platform">Java</a>
</td>
<td>Public.
</td></tr>
<tr>
<td>Topsite
</td>
<td><a href="Python_(programming_language)" title="Python (programming language)">Python</a>
</td>
<td>Public. <i>"As of 2008-02-20, this project is no longer under active development."</i><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><a href="Twig_(template_engine)" title="Twig (template engine)">Twig</a>
</td>
<td><a href="PHP" title="PHP">PHP</a>
</td>
<td>
</td></tr>
<tr>
<td><a href="Standard_PHP_Library" class="mw-redirect" title="Standard PHP Library">PHPlib</a>
</td>
<td><a href="Standard_PHP_Library" class="mw-redirect" title="Standard PHP Library">PHPlib</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded iterable language</a>.
</td></tr>
<tr>
<td><a href="WebMacro" title="WebMacro">WebMacro</a>
</td>
<td><a href="Java_platform" class="mw-redirect" title="Java platform">Java</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded iterable language</a>.
</td></tr>
<tr>
<td><a href="WebObjects" title="WebObjects">WebObjects</a>
</td>
<td><a href="Java_platform" class="mw-redirect" title="Java platform">Java</a>
</td>
<td>Use the <a href="WebObjects#Core_frameworks" title="WebObjects">WebObjects Builder</a> as engine.
</td></tr>
<tr>
<td><a href="Apache_Velocity" title="Apache Velocity">Velocity</a>
</td>
<td><a href="Java_platform" class="mw-redirect" title="Java platform">Java</a>
</td>
<td>Public. Use VTL - <a rel="nofollow" class="external text" href="https://velocity.apache.org/engine/devel/vtl-reference.html">Velocity Template Language</a>.
</td></tr>
<tr>
<td><a href="Vignette_(software)" class="mw-redirect" title="Vignette (software)">Vignette</a>
</td>
<td>Proprietary.
</td>
<td>Commercial solution. <a href="Web_template" class="mw-redirect" title="Web template">Embedded complex language</a>.
</td></tr>
<tr>
<td><a href="XSLT" title="XSLT">XSLT</a> (standard language)
</td>
<td>Any with an XSLT parser
</td>
<td>Standard. <a href="Web_template" class="mw-redirect" title="Web template">Event-driven programmable language</a>.
</td></tr>
<tr>
<td><a href="XQuery" title="XQuery">XQuery</a> (standard language)
</td>
<td>Any with an XQuery parser
</td>
<td>Standard. <a href="Web_template" class="mw-redirect" title="Web template">Embedded programmable language</a>.
</td></tr></tbody></table>
<p>Technically, the methodology of embedding programming languages within HTML (or XML, etc.), used in many "server-side included script languages" are also templates. All of them are <a href="Web_template" class="mw-redirect" title="Web template">Embedded complex languages</a>.
</p>
<table class="wikitable sortable">
<tbody><tr>
<th>System label/name
</th>
<th>Notes
</th></tr>
<tr>
<td><a href="Active_Server_Pages" title="Active Server Pages">Active Server Pages</a> (ASP)
</td>
<td>Proprietary (<a href="Microsoft" title="Microsoft">Microsoft platform</a>). See also: <a href="VBScript" title="VBScript">VBScript</a>, Javascript, <a href="PerlScript" class="mw-redirect" title="PerlScript">PerlScript</a>, etc. extensions for ASP.
</td></tr>
<tr>
<td><a href="ERuby" title="ERuby">eRuby</a>
</td>
<td>Public (<a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>).
</td></tr>
<tr>
<td><a href="ColdFusion_Markup_Language" title="ColdFusion Markup Language">ColdFusion Markup Language</a> (CFM)
</td>
<td>Public (<a href="Lucee" title="Lucee">Lucee</a>, <a href="Railo" title="Railo">Railo</a>, OpenBD). Proprietary (<a href="Adobe_ColdFusion" title="Adobe ColdFusion">Adobe ColdFusion</a>).
</td></tr>
<tr>
<td><a href="Jakarta_Server_Pages" title="Jakarta Server Pages">Jakarta Server Pages</a> (JSP)
</td>
<td>Public, <a href="Jakarta_EE" title="Jakarta EE">Jakarta EE</a>.
</td></tr>
<tr>
<td><a href="Perl" title="Perl">Active Perl</a>
</td>
<td>Public.
</td></tr>
<tr>
<td><a href="PHP" title="PHP">PHP</a>
</td>
<td>Public.
</td></tr>
<tr>
<td><a href="OpenACS" class="mw-redirect" title="OpenACS">OpenACS</a>
</td>
<td>Public (<a href="Tcl" title="Tcl">Tcl</a>).
</td></tr></tbody></table>
<p>There are also <a href="Preprocessor" title="Preprocessor">preprocessors</a> used as <a href="Template_engine_(web)" class="mw-redirect" title="Template engine (web)">server-side template engines</a>. Examples:
</p>
<table class="wikitable sortable">
<tbody><tr>
<th><a href="Preprocessor" title="Preprocessor">Preprocessor</a>
</th>
<th>Notes
</th></tr>
<tr>
<td><a href="C_preprocessor" title="C preprocessor">C preprocessor</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded iterable language</a>.
</td></tr>
<tr>
<td><a href="M4_(computer_language)" title="M4 (computer language)">M4</a>
</td>
<td>Public. <a href="Web_template" class="mw-redirect" title="Web template">Embedded complex language</a>.
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Edge-side_systems">Edge-side systems</h3></div>
<p>Edge-Side template and inclusion systems. "Edge-side" refers to web servers that reside in the space between the client (browser) and the originating server. They are often referred to as "reverse-proxy" servers. These servers are generally tasked with reducing the load and traffic on originating servers by caching content such as images and page fragments, and delivering this to the browser in an efficient manner.
</p><p>Basic <a href="Edge_Side_Includes" title="Edge Side Includes">Edge Side Includes</a> (ESI) is an SSI-like language. ESI has been implemented for content delivery networks. The ESI template language may also be implemented in web browsers using JavaScript and Ajax, or via a browser "plug-in".
</p>
<div class="mw-heading mw-heading3"><h3 id="Client-side_systems">Client-side systems</h3></div>

<div role="note" class="hatnote navigation-not-searchable">See also: <a href="JavaScript_templating" title="JavaScript templating">JavaScript templating</a></div>
<p>Many web browsers can apply an <a href="XSLT" title="XSLT">XSLT</a> stylesheet to XML data that transforms the data into an XHTML document, thereby providing template functionality in the browser itself.<br>
Other systems implement template functionality in the browser using <a href="JavaScript" title="JavaScript">JavaScript</a> or another <a href="Client-side_scripting" class="mw-redirect" title="Client-side scripting">client-side scripting</a> language, including:
</p>
<ul><li><a href="Mustache_(template_system)" title="Mustache (template system)">Mustache</a></li>
<li><a rel="nofollow" class="external text" href="https://github.com/nebrelbug/squirrelly">Squirrelly</a></li>
<li><a rel="nofollow" class="external text" href="https://handlebarsjs.com/">Handlebars</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Distributed_systems">Distributed systems</h3></div>
<p>The most simple form is <a href="Transclusion" title="Transclusion">transclusions</a> (HTML frames). In other cases <a href="Dynamic_web_page" title="Dynamic web page">dynamic web pages</a> are needed.
</p><p>Examples:
</p>
<ul><li><a href="Ajax_(programming)" title="Ajax (programming)">Ajax</a></li>
<li><a href="Rich_Internet_application" class="mw-redirect" title="Rich Internet application">Rich Internet application</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<table>

<tbody><tr>
<td>Concepts:
<ul><li><a href="Boilerplate_code" title="Boilerplate code">Boilerplate code</a></li>
<li><a href="Bytecode" title="Bytecode">Bytecode</a></li>
<li><a href="Comparison_of_web_template_engines" title="Comparison of web template engines">Comparison of web template engines</a></li>
<li><a href="Browser_engine" title="Browser engine">Layout engine</a></li>
<li><a href="Macro_(computer_science)#Text-substitution_macros" title="Macro (computer science)">Text substitution macros</a></li>
<li><a href="Preprocessor" title="Preprocessor">Preprocessor</a></li>
<li><a href="Template_processor" title="Template processor">Template processor</a></li>
<li><a href="Template_(file_format)" title="Template (file format)">Template (file format)</a></li>
<li><a href="Transclusion" title="Transclusion">Transclusion</a></li>
<li><a href="Virtual_machine" title="Virtual machine">Virtual machine</a></li></ul>
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</td>
<td valign="top">Standards:
<ul><li><a href="UIML" title="UIML">UIML</a> (User Interface Markup Language)</li>
<li><a href="XSLT" title="XSLT">XSLT</a> (Extensible Stylesheet Language Transformations)</li></ul>
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</td>
<td valign="top">Software:
<ul><li><a href="CodeCharge_Studio" title="CodeCharge Studio">CodeCharge Studio</a></li>
<li><a href="Jekyll_(software)" title="Jekyll (software)">Jekyll</a></li></ul>
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20121204081204/http://www.phpwact.org/pattern/template_view">"Template engine"</a>. phpwact.org wiki. Archived from <a rel="nofollow" class="external text" href="http://www.phpwact.org/pattern/template_view#separating_html_from_programming_code">the original</a> on December 4, 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">7 January</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-Template_processor_Niemeyer000-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Template_processor_Niemeyer000_2-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFNiemeyer2002" class="citation book cs1">Niemeyer, Patrick (2002). <i>Learning Java</i>. Sebastopol: O'Reilly. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-596-00285-8</bdi>.</cite></span>
</li>
<li id="cite_note-Template_processor_Manolescu000-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-Template_processor_Manolescu000_3-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFManolescu2006" class="citation book cs1">Manolescu, Dragos (2006). <i>Pattern Languages of Program Design 5</i>. Reading: Addison-Wesley Professional. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-321-32194-4</bdi>.</cite></span>
</li>
<li id="cite_note-Template_processor_Fowler000-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-Template_processor_Fowler000_4-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFFowler2003" class="citation book cs1">Fowler, Martin (2003). <i>Patterns of Enterprise Application Architecture</i>. Boston: Addison-Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-321-12742-0</bdi>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFMacDonald2015" class="citation book cs1">MacDonald, Matthew (2015). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=ZJTuCQAAQBAJ"><i>Creating a Website: The Missing Manual</i></a>. Chapter 8 &gt; Putting the Same Content on Multiple Pages &gt; Web Templates &gt; Note box: O'Reilly Media, Inc. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9781491936177</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">19 January</span> 2016</span>.</cite><span class="cs1-maint citation-comment"><code class="cs1-code">{{cite book}}</code>: CS1 maint: location (link)</span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://mustache.github.io/">"{{mustache}}"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">15 October</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFjodyburns" class="citation web cs1">jodyburns. <a rel="nofollow" class="external text" href="https://sourceforge.net/projects/topsite/">"Topsite Templating System"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">15 October</span> 2013</span>.</cite></span>
</li>
</ol></div></div>
<p>9. <a rel="nofollow" class="external text" href="https://www.mgtechnologies.co.in/category/ecommerce-website-templates">Free ecommerce website themes</a> MG Technologies Blogs and Information Portal of Website Themes.
</p>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://psionides.eu/2009/06/15/javascript-template-libraries/">JavaScript template libraries</a> comparison from 2009</li>
<li><a rel="nofollow" class="external text" href="http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf">Enforcing Strict Model–View Separation in Template Engines</a></li>
<li><a rel="nofollow" class="external text" href="http://www.unirioja.es/cu/fgarcia/JST-ICWE2007.pdf">A Double-Model Approach to Achieve Effective Model–View Separation in Template Based Web Applications</a></li>
<li><a rel="nofollow" class="external text" href="https://themeit.com/">A PHP template engine comparison with graphic charts</a></li>
<li><a rel="nofollow" class="external text" href="http://www.simple-is-better.org/template/">Comparisons/benchmarks of some Python template-engines and some generic thoughts about template-engines</a></li>
<li><a rel="nofollow" class="external text" href="http://web-mode.org/">web-mode.el is an emacs major for editing web templates</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-01-10" href="https://en.wikipedia.org/wiki/?title=Web_template_system&amp;oldid=1268618161">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>